﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data;

using QLTTAN.BLL;
using QLTTAN.DTO;
namespace QLTTAN.Form
{
    public partial class frmKetQuaThiCuoiKhoa : DevExpress.XtraEditors.XtraForm
    {
        LichThiBLL LT_BLL;
        LopHocBLL LopHoc_BLL;
        CT_LopHocBLL CT_LH_BLL;
        PhanCongBLL PC_BLL;

        public int MaLichThiSelected = -1;

        public frmKetQuaThiCuoiKhoa()
        {
            InitializeComponent();
        }

        private void frmKetQuaThiCuoiKhoa_Load(object sender, EventArgs e)
        {
            LT_BLL = new LichThiBLL();
            LopHoc_BLL = new LopHocBLL();
            CT_LH_BLL = new CT_LopHocBLL();
            PC_BLL = new PhanCongBLL();

            try
            {
                LichThiDTO LT_DTO = new LichThiDTO();
                LT_DTO.MaLichThi = MaLichThiSelected;

                DataRow LichThiSelected = LT_BLL.LichThi_GetInfo(LT_DTO);

                txtMaLop.Text = LichThiSelected["MaLop"].ToString();
                txtTenLoaiLop.Text = LichThiSelected["TenLoaiLop"].ToString();
                txtChuongTrinhHoc.Text = LichThiSelected["TenChuongTrinh"].ToString();
                txtPhongThi.Text = LichThiSelected["TenPhong"].ToString();
                txtKhoaHoc.Text = LichThiSelected["TenKhoaHoc"].ToString();
                txtSiSo.Text = LichThiSelected["SiSo"].ToString();

                

                // Lấy ra danh sách giáo viên dạy lớp đó.
                PhanCongDTO PC_DTO = new PhanCongDTO();
                PC_DTO.MaLop = int.Parse(LichThiSelected["MaLop"].ToString());
                gridCtrlGiaoVien.DataSource = PC_BLL.PhanCong_Load(PC_DTO);

                // Lấy danh sách học viên của lớp đó.
                CT_LopHocDTO CT_LH_DTO = new CT_LopHocDTO();
                CT_LH_DTO.MaLop = int.Parse(LichThiSelected["MaLop"].ToString());

                gridCtrlHocVien.DataSource = CT_LH_BLL.CT_LopHoc_Load(CT_LH_DTO);

            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnXuat_Click(object sender, EventArgs e)
        {

        }

        private void btnNhapDiem_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = true;
            Diem.OptionsColumn.AllowEdit = true;
            Dat.OptionsColumn.AllowEdit = true;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gridViewHocVien.RowCount; i++)
                {
                    DataRow row = gridViewHocVien.GetDataRow(i);

                    CT_LopHocDTO CT_LH_DTO = new CT_LopHocDTO();
                    CT_LH_DTO.MaCTLH = int.Parse(row["MaCTLH"].ToString());
                    CT_LH_DTO.Diem = int.Parse(row["Diem"].ToString());
                    CT_LH_DTO.Dat = Convert.ToBoolean(row["Dat"]);

                    if(CT_LH_BLL.CT_LopHoc_Update(CT_LH_DTO) <= 0)
                    {
                        XtraMessageBox.Show("Lưu điểm cho học viên " + row["TenHV"].ToString() + " thất bại", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                if (XtraMessageBox.Show("Đã cập nhật điểm thành công", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
                {
                    btnLuu.Enabled = false;
                    Diem.OptionsColumn.AllowEdit = false;
                    Dat.OptionsColumn.AllowEdit = false;
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            if (XtraMessageBox.Show("Bạn có chắc chắn muốn thoát khỏi màn hình Kết Quả Thi Cuối Khóa?\n Mọi thao tác của bạn sẽ không được lưu lại.",
                                    "Thông báo!!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                this.Close();
        }

        private void gridViewGiaoVien_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "STT")
                e.DisplayText = (e.ListSourceRowIndex + 1).ToString();
        }

        private void gridViewHocVien_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "STT")
                e.DisplayText = (e.ListSourceRowIndex + 1).ToString();
        }
    }
}